package com.cloud.feignconsumer.service;

import com.cloud.feignconsumer.service.impl.ProviderServiceFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * 通过@FeignClient表机器Feign客户端，通过value指定我们要请求的服务提供者，我这里的 EUREKA-PROVIDER 为自己注册到eureka中的服务提供者
 *
 * @author kangwen
 */
@Service
@FeignClient(value = "EUREKA-PROVIDER", fallback = ProviderServiceFallback.class)
public interface ProviderService {

	/**
	 * 当我们调用下面的hello方法时，feign会帮我们去注册中心找到 EUREKA-PROVIDER ，并通过负载均衡机制请求到某个实例上的 /hello http 接口
	 *
	 * @return
	 */
	@GetMapping(value = "/hello")
	String hello();

	@GetMapping("/timeout/{ms}")
	String timeout(@PathVariable Long ms);

}
